## Controller Python Script "salvar_encomenda"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind state=state
##bind subpath=traverse_subpath
##parameters=
##title=Salvar Encomenda
##

request = context.REQUEST

data_vigencia = DateTime(context.getData_vigencia())
data_vigencia_prorrogacao = DateTime(context.getData_vigencia_prorrogacao())
data_merito = DateTime(context.getData_merito())
data_merito_prorrogacao = DateTime(context.getData_merito_prorrogacao())
data_divulgacao = DateTime(context.getData_divulgacao())
data_divulgacao_prorrogacao = DateTime(context.getData_divulgacao_prorrogacao())

if data_vigencia > data_merito:
    state.setError('data_vigencia', 'Por favor corrija a data de vigência da Encomenda, ela está maior que a data de mérito. A data de mérito é %s' % (data_merito))

if data_vigencia > data_divulgacao:
    state.setError('data_vigencia', 'Por favor corrija a data de vigência da Encomenda, ela está maior que a data de divulgacao. A data de divulgacao é %s' % (data_divulgacao))

if data_vigencia_prorrogacao < data_vigencia:
    state.setError('data_vigencia_prorrogacao', 'Por favor corrija a data de prorrogação da vigência, ela está menor que a data de vigência da Encomenda. A data de vigência é %s' % (data_vigencia))

if data_merito < data_vigencia:
    state.setError('data_merito', 'Por favor corrija a data de mérito, ela está menor que a data de vigência. A data de vigência é %s' % (data_vigencia))

if data_merito > data_divulgacao:
    state.setError('data_merito', 'Por favor corrija a data de merito da Encomenda, ela está maior que a data de divulgacao. A data de divulgacao é %s' % (data_divulgacao))

if data_merito_prorrogacao < data_merito:
    state.setError('data_merito_prorrogacao', 'Por favor corrija a data de prorrogação do mérito, ela está menor que a data de mérito. A data de mérito é %s' % (data_merito))

if data_divulgacao < data_merito:
    state.setError('data_divulgacao', 'Por favor corrija a data de divulgação da Encomenda, ela está menor que a data de mérito. A data de mérito é %s' % (data_merito))

if data_divulgacao_prorrogacao < data_divulgacao:
    state.setError('data_divulgacao_prorrogacao', 'Por favor corrija a data de prorrogação da divulgação da Encomenda, ela está menor que a data de divulgação. A data de divulgação é %s' % (data_divulgacao))

if state.getErrors():
    return state.set(status='failure', portal_status_message='Por favor corrija os erros indicados.')

else:
    return state.set(portal_status_message='Os dados da Encomenda foram salvos.')
